﻿' ----------------------------------------------------------------------------------
' Microsoft Developer & Platform Evangelism
' 
' Copyright (c) Microsoft Corporation. All rights reserved.
' 
' THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, 
' EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES 
' OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ----------------------------------------------------------------------------------
' The example companies, organizations, products, domain names,
' e-mail addresses, logos, people, places, and events depicted
' herein are fictitious.  No association with any real company,
' organization, product, domain name, email address, logo, person,
' places, or events is intended or should be inferred.
' ----------------------------------------------------------------------------------

Imports Microsoft.Samples.WindowsPhoneCloud.StorageClient
Imports System.Runtime.Serialization
Imports System.IO

Namespace Serializers

    Friend Class SharedAccessSignatureDataContractSerializer
        Implements IDataContractSerializer(Of ICloudBlob)
        Private cloudBlobCollectionSerializer As DataContractSerializer

        Public Function ReadObject(ByVal stream As Stream) As IEnumerable(Of ICloudBlob) Implements IDataContractSerializer(Of ICloudBlob).ReadObject
            If Me.cloudBlobCollectionSerializer Is Nothing Then
                Me.cloudBlobCollectionSerializer = New DataContractSerializer(GetType(SharedAccessSignatureServiceListResponse))
            End If

            Return (TryCast(Me.cloudBlobCollectionSerializer.ReadObject(stream), SharedAccessSignatureServiceListResponse)).Blobs.ToArray()
        End Function
    End Class
End Namespace